#ifndef SATELLITALIMAGE_H
#define SATELLITALIMAGE_H

#include "basics.h"

class SatellitalImage
{
private:
    QImage satImage;
protected:
    QStringList bandsPaths;
    unsigned int width;
    unsigned int height;

    QVariant getNumericValueOf(int beginIndex, QString data);
    
public:
    SatellitalImage();
    ~SatellitalImage();

    virtual bool readImage(QVector<QString> headers) = 0;

    QImage getGrayPreviewOf(unsigned short int bandIndex, QSize imgSize);
    QImage getFalseColorPreviewOf(unsigned short int redIndex, unsigned short int greenIndex, unsigned short int blueIndex, QSize imgSize);

    QVector<int> getSpectralSignatureOf(QPoint imgCoordinates, QSize imgSize);
    int getHeight();
    int getWidth();

    void doRegionGrowing(QPoint);

    void doClasify(QVector<int>);

    bool betweenSpectralFirm(QVector<int> firm1,QVector<int> firm2);

    void doHighlight(QPoint);

    QImage getImage();
};


#endif // SATELLITALIMAGE_H
